lock

用途

lock方法通过使用select … for update的SQL语句来获得悲观锁。

举例

def book = Book.get(1)
book.lock()

描述

lock方法会获得一个实例上的悲观锁,实质上用SQL语句select … for update锁住数据库的一行。这个方法和Hibernate里使用LockMode.UPGRADE 结合 lock方法一样。

当事务提交时,锁自动被释放。Grails里,某个action结束执行后,通常会这么做。

可参考用户手册的Optimistic and Pessimistic locking章节。